﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ProjetoSolo.QueroGas.Dominio.Entidades
{
    public class Endereco : Entidade
    {
        public string IdEndereco { get; private set; }

        [DisplayName("cep")]
        [Required(ErrorMessage = "O preenchimento do cep é obrigatório.")]
        [StringLength(9, ErrorMessage = "O cep deve conter 9 digitos.")] 
        public string Cep { get; set; }

        [DisplayName("estado")]
        [Required(ErrorMessage = "O preenchimento do estado é obrigatório.")]
        [StringLength(2, ErrorMessage = "O tamanho do código do estado é inválido.")]
        public string Estado { get; set; }

        [DisplayName("cidade")]
        [Required(ErrorMessage = "O preenchimento da cidade é obrigatório.")]
        public string Cidade { get; set; }

        [DisplayName("bairro")]
        [Required(ErrorMessage = "O preenchimento do bairro é obrigatório.")]
        public string Bairro { get; set; }

        [DisplayName("logradouro")]
        [Required(ErrorMessage = "O preenchimento do logradouro é obrigatório.")]
        public string Logradouro { get; set; }

        [DisplayName("complemento")]
        [Required(ErrorMessage = "O preenchimento do complemento é obrigatório.")]
        public string Complemento { get; set; }
        
        public decimal Latitude { get; set; }
        public decimal Longitude { get; set; }
        public bool Ativo { get; set; }

        public Endereco()
        {
            
        }

        public Endereco(string cep, string estado, string cidade, string bairro, string logradouro, string complemento, decimal latitude, decimal longitude)
        {
            this.Cep = cep;
            this.Estado = estado;
            this.Cidade = cidade;
            this.Bairro = bairro;
            this.Logradouro = logradouro;
            this.Complemento = complemento;
            this.Ativo = true;
            this.Latitude = latitude;
            this.Longitude = longitude;
        }
    }
}